﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HomeWork
{
    internal class Keyword
    {
        // 关键词文本（核心属性，不可为空）
        public string Text { get;  set; }

        // 关键词出现次数（非负整数）
        public int OccurrenceCount { get; private set; }

        // 关键词权重（可选，用于排序或重要性标识）
        public double Weight { get; set; }
        //多对多关系：一个关键词可以关联多个文章
        public IList<Article> Articles { get; set; }
        public IList<Problem> Problems { get; set; }

        // 构造函数：必须传入关键词文本（确保Text不为空）
        public Keyword(string text)
        {
            // 校验：关键词文本不能为null或空字符串
            if (string.IsNullOrWhiteSpace(text))
            {
                throw new ArgumentException("关键词文本不能为空或空白", nameof(text));
            }

            Text = text;
            OccurrenceCount = 0; // 初始出现次数为0
            Weight = 1.0; // 默认权重为1.0
        }

        public Keyword()
        {

        }

        // 增加关键词出现次数（+1）
        public void IncrementOccurrence()
        {
            OccurrenceCount++;
        }

        // 重置出现次数为0
        public void ResetOccurrence()
        {
            OccurrenceCount = 0;
        }
    }
}
